// 导入路由对象
const express = require("express")
const router = express.Router()//创建路由
// 导入控制器类
const Cate = require("../controllers/cateController")
const cateObj = new Cate()

// 查询：
// 获取导航详情
// 请求方式：get
// 参数：id
// 请求地址： http://localhost:3001/api/cate/detail?id=1
router.get('/detail', async (req, res) => {
    let id = req.query.id || 1;
    await cateObj.detail(id).then(
        result => {
            res.send({
                result,
                msg: "根据id查询导航记录",
                code: 200
            })
        },
        err => {
            res.send({
                err,
                msg: "获取导航数据失败",
                code: -1
            })
        }
    )
})

// 获取导航列表
// 请求方式：get
// 参数：无
// 请求地址： http://localhost:3001/api/cate/list
router.get('/list', async (req, res) => {
    await cateObj.list().then(
        result => {
            res.send({
                result,
                msg: "查询导航所有记录",
                code: 200
            })
        },
        err => {
            res.send({
                err,
                msg: "获取导航数据失败",
                code: -1
            })
        }
    )



})
// 搜索导航记录
// 请求方式：get
// 参数：keyword
// 请求地址：http://localhost:3001/api/cate/search?keyword=22
router.get('/search', async (req, res) => {
    let keyword = req.query.keyword;
    await cateObj.search(keyword).then(
        result => {
            res.send({
                result,
                msg: "根据关键字查询导航记录",
            })
        },
        err => {
            res.send({
                err,
                msg: "获取导航数据失败",
                code: -1
            })
        }
    )

})

// 插入：
// 添加导航记录
// 请求方式：get
// 参数：cate, cate_name, cate_url
// 请求地址：http://localhost:3001/api/cate/add
router.get('/add', async (req, res) => {
    // 解构赋值
    let { cate, cate_name, cate_url } = req.query;
    if (cate == undefined || cate_name == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        // 调用控制器的方法
        await cateObj.add(cate, cate_name, cate_url).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "添加导航记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取导航数据失败",
                    code: -1
                })
            }
        )

    }
})

// 更新或修改
// 请求方式：get
// 参数：cate, cate_name, cate_url, id
// 请求地址：http://localhost:3001/api/cate/modify?cate=工作生活3&cate_name=测试&id=3
router.get('/modify', async (req, res) => {
    // 解构赋值
    let { cate, cate_name, cate_url, id } = req.query;
    if (cate == undefined || cate_name == undefined || id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        await cateObj.modify(cate, cate_name, cate_url, id).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "根据id修改导航记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取导航数据失败",
                    code: -1
                })
            }
        )


    }
})

// 删除导航记录
// 请求方式：get
// 参数：id
// 请求地址：http://localhost:3001/api/cate/remove?id=4
router.get('/remove', async (req, res) => {
    // 解构赋值
    let { id } = req.query;
    if (id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        await cateObj.remove(id).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "根据id删除导航记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取导航数据失败",
                    code: -1
                })
            }
        )

    }
})

// 获取导航分页列表
// 请求方式：get
// 参数：page_num, page_size
// 请求地址：http://localhost:3001/api/cate/items?page_num=5&page_size=1
router.get('/items', async (req, res) => {
    // 解构赋值
    let { page_num, page_size } = req.query;
    if (page_num == undefined || page_size == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        let page_num2 = parseInt(page_num)
        let page_size2 = parseInt(page_size)
        await cateObj.items(page_num2, page_size2).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "获取导航分页数据",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取导航数据失败",
                    code: -1
                })
            }
        )
    }
})

// 挂载到模块系统上
module.exports = router;